package main

import (
	"fmt"
)

// STRINGER OMIT
type Stringer interface {
	String() string
}

//STOP OMIT

//START OMIT
type Foo struct {
}

func (f *Foo) String() string {
	return "foo"
}

type ID int

func (id ID) String() string {
	return fmt.Sprintf("#%08x", int(id))
}

func main() {
	ss := []Stringer{&Foo{}, ID(42)}
	fmt.Println(ss)
}

//STOP OMIT
